<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
<meta http-equiv="X-UA-Compatible" content="IE=9"/>
<meta name="generator" content="Doxygen 1.8.5"/>
<title>PintarOS: src/fs.c File Reference</title>
<link href="tabs.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="jquery.js"></script>
<script type="text/javascript" src="dynsections.js"></script>
<link href="search/search.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="search/search.js"></script>
<script type="text/javascript">
  $(document).ready(function() { searchBox.OnSelectItem(0); });
</script>
<link href="doxygen.css" rel="stylesheet" type="text/css" />
</head>
<body>
<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
<div id="titlearea">
<table cellspacing="0" cellpadding="0">
 <tbody>
 <tr style="height: 56px;">
  <td style="padding-left: 0.5em;">
   <div id="projectname">PintarOS
   </div>
   <div id="projectbrief">Operating System for Smart Card</div>
  </td>
 </tr>
 </tbody>
</table>
</div>
<!-- end header part -->
<!-- Generated by Doxygen 1.8.5 -->
<script type="text/javascript">
var searchBox = new SearchBox("searchBox", "search",false,'Search');
</script>
  <div id="navrow1" class="tabs">
    <ul class="tablist">
      <li><a href="index.html"><span>Main&#160;Page</span></a></li>
      <li><a href="modules.html"><span>Modules</span></a></li>
      <li><a href="annotated.html"><span>Data&#160;Structures</span></a></li>
      <li class="current"><a href="files.html"><span>Files</span></a></li>
      <li>
        <div id="MSearchBox" class="MSearchBoxInactive">
        <span class="left">
          <img id="MSearchSelect" src="search/mag_sel.png"
               onmouseover="return searchBox.OnSearchSelectShow()"
               onmouseout="return searchBox.OnSearchSelectHide()"
               alt=""/>
          <input type="text" id="MSearchField" value="Search" accesskey="S"
               onfocus="searchBox.OnSearchFieldFocus(true)" 
               onblur="searchBox.OnSearchFieldFocus(false)" 
               onkeyup="searchBox.OnSearchFieldChange(event)"/>
          </span><span class="right">
            <a id="MSearchClose" href="javascript:searchBox.CloseResultsWindow()"><img id="MSearchCloseImg" border="0" src="search/close.png" alt=""/></a>
          </span>
        </div>
      </li>
    </ul>
  </div>
  <div id="navrow2" class="tabs2">
    <ul class="tablist">
      <li><a href="files.html"><span>File&#160;List</span></a></li>
      <li><a href="globals.html"><span>Globals</span></a></li>
    </ul>
  </div>
<!-- window showing the filter options -->
<div id="MSearchSelectWindow"
     onmouseover="return searchBox.OnSearchSelectShow()"
     onmouseout="return searchBox.OnSearchSelectHide()"
     onkeydown="return searchBox.OnSearchSelectKey(event)">
<a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(0)"><span class="SelectionMark">&#160;</span>All</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(1)"><span class="SelectionMark">&#160;</span>Data Structures</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(2)"><span class="SelectionMark">&#160;</span>Files</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(3)"><span class="SelectionMark">&#160;</span>Functions</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(4)"><span class="SelectionMark">&#160;</span>Variables</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(5)"><span class="SelectionMark">&#160;</span>Enumerations</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(6)"><span class="SelectionMark">&#160;</span>Enumerator</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(7)"><span class="SelectionMark">&#160;</span>Macros</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(8)"><span class="SelectionMark">&#160;</span>Groups</a></div>

<!-- iframe showing the search results (closed by default) -->
<div id="MSearchResultsWindow">
<iframe src="javascript:void(0)" frameborder="0" 
        name="MSearchResults" id="MSearchResults">
</iframe>
</div>

<div id="nav-path" class="navpath">
  <ul>
<li class="navelem"><a class="el" href="dir_68267d1309a1af8e8297ef4c3efbcdba.html">src</a></li>  </ul>
</div>
</div><!-- top -->
<div class="header">
  <div class="summary">
<a href="#define-members">Macros</a> &#124;
<a href="#func-members">Functions</a>  </div>
  <div class="headertitle">
<div class="title">fs.c File Reference</div>  </div>
</div><!--header-->
<div class="contents">

<p>Implementation for file system module.  
<a href="#details">More...</a></p>
<div class="textblock"><code>#include &quot;<a class="el" href="config_8h_source.html">config.h</a>&quot;</code><br/>
<code>#include &quot;types.h&quot;</code><br/>
<code>#include &quot;<a class="el" href="hal_8h_source.html">hal.h</a>&quot;</code><br/>
<code>#include &quot;crypt.h&quot;</code><br/>
<code>#include &quot;<a class="el" href="state_8h_source.html">state.h</a>&quot;</code><br/>
<code>#include &quot;<a class="el" href="fs_8h_source.html">fs.h</a>&quot;</code><br/>
</div><table class="memberdecls">
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="define-members"></a>
Macros</h2></td></tr>
<tr class="memitem:ga3167e1c51bc79684fdfb78c181075d11"><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__fs.html#ga3167e1c51bc79684fdfb78c181075d11">FS_SIZE</a>&#160;&#160;&#160;CONFIG_FS_SIZE</td></tr>
<tr class="separator:ga3167e1c51bc79684fdfb78c181075d11"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga484d3b027c362670c91431b360d8e41a"><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__fs.html#ga484d3b027c362670c91431b360d8e41a">FS_START</a>&#160;&#160;&#160;CONFIG_FS_START</td></tr>
<tr class="separator:ga484d3b027c362670c91431b360d8e41a"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:gad6b56bdbbe5838a6260ddc0926fa1891"><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__fs.html#gad6b56bdbbe5838a6260ddc0926fa1891">FS_BLOCK_SIZE</a>&#160;&#160;&#160;CONFIG_FS_BLOCK_SIZE</td></tr>
<tr class="separator:gad6b56bdbbe5838a6260ddc0926fa1891"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga5534402cd21abf73c1851e468ca502c4"><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__fs.html#ga5534402cd21abf73c1851e468ca502c4">FS_BLOCKS</a>&#160;&#160;&#160;<a class="el" href="group__fs.html#ga3167e1c51bc79684fdfb78c181075d11">FS_SIZE</a>/<a class="el" href="group__fs.html#gad6b56bdbbe5838a6260ddc0926fa1891">FS_BLOCK_SIZE</a></td></tr>
<tr class="separator:ga5534402cd21abf73c1851e468ca502c4"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ab3be783bf5de0fbcb5e856ee4201aaf6"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="ab3be783bf5de0fbcb5e856ee4201aaf6"></a>
#define&#160;</td><td class="memItemRight" valign="bottom"><b>FS_ALLOC_TABLE_OFFSET</b>&#160;&#160;&#160;0</td></tr>
<tr class="separator:ab3be783bf5de0fbcb5e856ee4201aaf6"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga2a3310e42776399983998435e74a4173"><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__fs__structure.html#ga2a3310e42776399983998435e74a4173">FS_ALLOC_TABLE_SIZE</a>&#160;&#160;&#160;(<a class="el" href="group__fs.html#ga5534402cd21abf73c1851e468ca502c4">FS_BLOCKS</a>/8)/<a class="el" href="group__fs.html#gad6b56bdbbe5838a6260ddc0926fa1891">FS_BLOCK_SIZE</a></td></tr>
<tr class="separator:ga2a3310e42776399983998435e74a4173"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:aabf6288e000fc2a6e3f77fc5b7b5684c"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="aabf6288e000fc2a6e3f77fc5b7b5684c"></a>
#define&#160;</td><td class="memItemRight" valign="bottom"><b>FS_FILE_TABLE_OFFSET</b>&#160;&#160;&#160;FS_ALLOC_TABLE_OFFSET + <a class="el" href="group__fs__structure.html#ga2a3310e42776399983998435e74a4173">FS_ALLOC_TABLE_SIZE</a></td></tr>
<tr class="separator:aabf6288e000fc2a6e3f77fc5b7b5684c"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga4bcf67d33f167440f0a2b1ea236b5261"><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__fs__structure.html#ga4bcf67d33f167440f0a2b1ea236b5261">FS_FILE_TABLE_SIZE</a>&#160;&#160;&#160;CONFIG_FS_FILE_TABLE_SIZE/<a class="el" href="group__fs.html#gad6b56bdbbe5838a6260ddc0926fa1891">FS_BLOCK_SIZE</a></td></tr>
<tr class="separator:ga4bcf67d33f167440f0a2b1ea236b5261"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a3e03cd5b0aeb7d563d0c8c8eda00bfdb"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a3e03cd5b0aeb7d563d0c8c8eda00bfdb"></a>
#define&#160;</td><td class="memItemRight" valign="bottom"><b>FS_FILE_BODY_OFFSET</b>&#160;&#160;&#160;FS_FILE_TABLE_OFFSET + <a class="el" href="group__fs__structure.html#ga4bcf67d33f167440f0a2b1ea236b5261">FS_FILE_TABLE_SIZE</a></td></tr>
<tr class="separator:a3e03cd5b0aeb7d563d0c8c8eda00bfdb"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga4340411796330da232e2cc2af40fd00c"><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__fs__structure.html#ga4340411796330da232e2cc2af40fd00c">FS_FILE_BODY_SIZE</a>&#160;&#160;&#160;<a class="el" href="group__fs.html#ga5534402cd21abf73c1851e468ca502c4">FS_BLOCKS</a> - FS_FILE_BODY_OFFSET</td></tr>
<tr class="separator:ga4340411796330da232e2cc2af40fd00c"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a462b83433c6af085bae31a0016f2ed6c"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a462b83433c6af085bae31a0016f2ed6c"></a>
#define&#160;</td><td class="memItemRight" valign="bottom"><b>FS_HEADER_TAG_OFFSET</b>&#160;&#160;&#160;0</td></tr>
<tr class="separator:a462b83433c6af085bae31a0016f2ed6c"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga499f64a7727690bf0d5281e16539a95a"><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__fs__header.html#ga499f64a7727690bf0d5281e16539a95a">FS_HEADER_TAG_SIZE</a>&#160;&#160;&#160;1</td></tr>
<tr class="separator:ga499f64a7727690bf0d5281e16539a95a"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ac1e41fc881d853e6b1c5fadf1330c39d"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="ac1e41fc881d853e6b1c5fadf1330c39d"></a>
#define&#160;</td><td class="memItemRight" valign="bottom"><b>FS_HEADER_FID_OFFSET</b>&#160;&#160;&#160;FS_HEADER_TAG_OFFSET + <a class="el" href="group__fs__header.html#ga499f64a7727690bf0d5281e16539a95a">FS_HEADER_TAG_SIZE</a></td></tr>
<tr class="separator:ac1e41fc881d853e6b1c5fadf1330c39d"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga9ebf8374931fc290233a3fd175a1593c"><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__fs__header.html#ga9ebf8374931fc290233a3fd175a1593c">FS_HEADER_FID_SIZE</a>&#160;&#160;&#160;2</td></tr>
<tr class="separator:ga9ebf8374931fc290233a3fd175a1593c"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:af6cd2d3474103ce288f8f8c34807f3eb"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="af6cd2d3474103ce288f8f8c34807f3eb"></a>
#define&#160;</td><td class="memItemRight" valign="bottom"><b>FS_HEADER_PARENT_OFFSET</b>&#160;&#160;&#160;FS_HEADER_FID_OFFSET + <a class="el" href="group__fs__header.html#ga9ebf8374931fc290233a3fd175a1593c">FS_HEADER_FID_SIZE</a></td></tr>
<tr class="separator:af6cd2d3474103ce288f8f8c34807f3eb"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:gae31c4ce686bea764e72c6ba0f49ed672"><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__fs__header.html#gae31c4ce686bea764e72c6ba0f49ed672">FS_HEADER_PARENT_SIZE</a>&#160;&#160;&#160;2</td></tr>
<tr class="separator:gae31c4ce686bea764e72c6ba0f49ed672"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a478342891028fc0b27d6e3cfc0fc18be"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a478342891028fc0b27d6e3cfc0fc18be"></a>
#define&#160;</td><td class="memItemRight" valign="bottom"><b>FS_HEADER_CHILD_OFFSET</b>&#160;&#160;&#160;FS_HEADER_PARENT_OFFSET + <a class="el" href="group__fs__header.html#gae31c4ce686bea764e72c6ba0f49ed672">FS_HEADER_PARENT_SIZE</a></td></tr>
<tr class="separator:a478342891028fc0b27d6e3cfc0fc18be"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:gaa8acbe7b4b0c8c5e9213afa90b528142"><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__fs__header.html#gaa8acbe7b4b0c8c5e9213afa90b528142">FS_HEADER_CHILD_SIZE</a>&#160;&#160;&#160;2</td></tr>
<tr class="separator:gaa8acbe7b4b0c8c5e9213afa90b528142"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a4f78e4af36189da495709a4ead43a767"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a4f78e4af36189da495709a4ead43a767"></a>
#define&#160;</td><td class="memItemRight" valign="bottom"><b>FS_HEADER_SIBLING_OFFSET</b>&#160;&#160;&#160;FS_HEADER_CHILD_OFFSET + <a class="el" href="group__fs__header.html#gaa8acbe7b4b0c8c5e9213afa90b528142">FS_HEADER_CHILD_SIZE</a></td></tr>
<tr class="separator:a4f78e4af36189da495709a4ead43a767"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga7e470e354b3fa15e3880ecdb8784c6a2"><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__fs__header.html#ga7e470e354b3fa15e3880ecdb8784c6a2">FS_HEADER_SIBLING_SIZE</a>&#160;&#160;&#160;2</td></tr>
<tr class="separator:ga7e470e354b3fa15e3880ecdb8784c6a2"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ab174c55e0cda993310032ee02e18d17b"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="ab174c55e0cda993310032ee02e18d17b"></a>
#define&#160;</td><td class="memItemRight" valign="bottom"><b>FS_HEADER_BODY_OFFSET</b>&#160;&#160;&#160;FS_HEADER_SIBLING_OFFSET + <a class="el" href="group__fs__header.html#ga7e470e354b3fa15e3880ecdb8784c6a2">FS_HEADER_SIBLING_SIZE</a></td></tr>
<tr class="separator:ab174c55e0cda993310032ee02e18d17b"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga4aecac06373354147de5dfec4ba14ca9"><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__fs__header.html#ga4aecac06373354147de5dfec4ba14ca9">FS_HEADER_BODY_SIZE</a>&#160;&#160;&#160;2</td></tr>
<tr class="separator:ga4aecac06373354147de5dfec4ba14ca9"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga1031facaa31a457c28f86cf221f16bc0"><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__fs__header.html#ga1031facaa31a457c28f86cf221f16bc0">FS_HEADER_SIZE</a></td></tr>
<tr class="separator:ga1031facaa31a457c28f86cf221f16bc0"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a17fbf8f7e13bb360d9ac95a4acd087dd"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a17fbf8f7e13bb360d9ac95a4acd087dd"></a>
#define&#160;</td><td class="memItemRight" valign="bottom"><b>FS_BODY_STRUCTURE_OFFSET</b>&#160;&#160;&#160;0</td></tr>
<tr class="separator:a17fbf8f7e13bb360d9ac95a4acd087dd"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a08b6a5f1bf5a5bb375cb9905b27c6822"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a08b6a5f1bf5a5bb375cb9905b27c6822"></a>
#define&#160;</td><td class="memItemRight" valign="bottom"><b>FS_BODY_STRUCTURE_SIZE</b>&#160;&#160;&#160;1</td></tr>
<tr class="separator:a08b6a5f1bf5a5bb375cb9905b27c6822"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a5af43bee66dea423179884c602f5c33c"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a5af43bee66dea423179884c602f5c33c"></a>
#define&#160;</td><td class="memItemRight" valign="bottom"><b>FS_BODY_TYPE_OFFSET</b>&#160;&#160;&#160;FS_BODY_STRUCTURE_OFFSET + FS_BODY_STRUCTURE_SIZE</td></tr>
<tr class="separator:a5af43bee66dea423179884c602f5c33c"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a2fc234bc46a392b04df17fd6d106d3eb"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a2fc234bc46a392b04df17fd6d106d3eb"></a>
#define&#160;</td><td class="memItemRight" valign="bottom"><b>FS_BODY_TYPE_SIZE</b>&#160;&#160;&#160;1</td></tr>
<tr class="separator:a2fc234bc46a392b04df17fd6d106d3eb"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ad840e12965cb6a573e35096d6663f611"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="ad840e12965cb6a573e35096d6663f611"></a>
#define&#160;</td><td class="memItemRight" valign="bottom"><b>FS_BODY_ACREAD_OFFSET</b>&#160;&#160;&#160;FS_BODY_TYPE_OFFSET + FS_BODY_TYPE_SIZE</td></tr>
<tr class="separator:ad840e12965cb6a573e35096d6663f611"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a0cccbd25a665ca8e80d61c69b04390cd"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a0cccbd25a665ca8e80d61c69b04390cd"></a>
#define&#160;</td><td class="memItemRight" valign="bottom"><b>FS_BODY_ACREAD_SIZE</b>&#160;&#160;&#160;1</td></tr>
<tr class="separator:a0cccbd25a665ca8e80d61c69b04390cd"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a7cb8a168708c354a937affbb28e389dd"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a7cb8a168708c354a937affbb28e389dd"></a>
#define&#160;</td><td class="memItemRight" valign="bottom"><b>FS_BODY_ACUPDATE_OFFSET</b>&#160;&#160;&#160;FS_BODY_ACREAD_OFFSET + FS_BODY_ACREAD_SIZE</td></tr>
<tr class="separator:a7cb8a168708c354a937affbb28e389dd"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ad56ab59ac9cfd2c2bbe3342b8e9e354d"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="ad56ab59ac9cfd2c2bbe3342b8e9e354d"></a>
#define&#160;</td><td class="memItemRight" valign="bottom"><b>FS_BODY_ACUPDATE_SIZE</b>&#160;&#160;&#160;1</td></tr>
<tr class="separator:ad56ab59ac9cfd2c2bbe3342b8e9e354d"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a39f158542ea4dfadb06418b1a03e883a"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a39f158542ea4dfadb06418b1a03e883a"></a>
#define&#160;</td><td class="memItemRight" valign="bottom"><b>FS_BODY_SIZE_OFFSET</b>&#160;&#160;&#160;FS_BODY_ACUPDATE_OFFSET + FS_BODY_ACUPDATE_SIZE</td></tr>
<tr class="separator:a39f158542ea4dfadb06418b1a03e883a"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a6d9b76a1b339024938eb9ade7ff567cd"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a6d9b76a1b339024938eb9ade7ff567cd"></a>
#define&#160;</td><td class="memItemRight" valign="bottom"><b>FS_BODY_SIZE_SIZE</b>&#160;&#160;&#160;2</td></tr>
<tr class="separator:a6d9b76a1b339024938eb9ade7ff567cd"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ae3f12a56a7d9f5bb0adcb1ecce955871"><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><b>FS_BODY_HEADER_SIZE</b></td></tr>
<tr class="separator:ae3f12a56a7d9f5bb0adcb1ecce955871"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a9d09b7ef751fb22fcaed16874601df0d"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a9d09b7ef751fb22fcaed16874601df0d"></a>
#define&#160;</td><td class="memItemRight" valign="bottom"><b>FS_BODY_BODY_OFFSET</b>&#160;&#160;&#160;FS_BODY_SIZE_OFFSET + FS_BODY_SIZE_SIZE</td></tr>
<tr class="separator:a9d09b7ef751fb22fcaed16874601df0d"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a0a7f6295239767ca82440c0f4b934e11"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a0a7f6295239767ca82440c0f4b934e11"></a>
#define&#160;</td><td class="memItemRight" valign="bottom"><b>FS_ALLOC_HEADER</b>(address)&#160;&#160;&#160;FSAlloc(CEIL((<a class="el" href="group__fs__header.html#ga1031facaa31a457c28f86cf221f16bc0">FS_HEADER_SIZE</a>),<a class="el" href="group__fs.html#gad6b56bdbbe5838a6260ddc0926fa1891">FS_BLOCK_SIZE</a>), FS_FILE_TABLE_OFFSET, FS_FILE_BODY_OFFSET, address)</td></tr>
<tr class="separator:a0a7f6295239767ca82440c0f4b934e11"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ae8776b067422738c2d8329ac1e8acc58"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="ae8776b067422738c2d8329ac1e8acc58"></a>
#define&#160;</td><td class="memItemRight" valign="bottom"><b>FS_ALLOC_BODY</b>(address, length)&#160;&#160;&#160;FSAlloc(CEIL((FS_BODY_HEADER_SIZE + length),<a class="el" href="group__fs.html#gad6b56bdbbe5838a6260ddc0926fa1891">FS_BLOCK_SIZE</a>), FS_FILE_BODY_OFFSET, <a class="el" href="group__fs.html#ga5534402cd21abf73c1851e468ca502c4">FS_BLOCKS</a>, address);</td></tr>
<tr class="separator:ae8776b067422738c2d8329ac1e8acc58"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a10de56ddb6d43f1e1196cee204778db9"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a10de56ddb6d43f1e1196cee204778db9"></a>
#define&#160;</td><td class="memItemRight" valign="bottom"><b>FS_SET_HEADER_TAG</b>(block, src)&#160;&#160;&#160;<a class="el" href="hal_8h.html#aebb1592b9bb339c20a2e28a08b3deebe">HAL_Mem_WriteBlock</a>(<a class="el" href="group__fs.html#ga484d3b027c362670c91431b360d8e41a">FS_START</a> + (block * <a class="el" href="group__fs.html#gad6b56bdbbe5838a6260ddc0926fa1891">FS_BLOCK_SIZE</a>) + FS_HEADER_TAG_OFFSET, <a class="el" href="group__fs__header.html#ga499f64a7727690bf0d5281e16539a95a">FS_HEADER_TAG_SIZE</a>, (uint8_t *)src)</td></tr>
<tr class="separator:a10de56ddb6d43f1e1196cee204778db9"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:aa4fcc0eddec09b64ff926e5e82eeba73"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="aa4fcc0eddec09b64ff926e5e82eeba73"></a>
#define&#160;</td><td class="memItemRight" valign="bottom"><b>FS_GET_HEADER_TAG</b>(block, dest)&#160;&#160;&#160;<a class="el" href="hal_8h.html#a48d7225f3720aa598e5c9fc3354c88e8">HAL_Mem_ReadBlock</a>(<a class="el" href="group__fs.html#ga484d3b027c362670c91431b360d8e41a">FS_START</a> + (block * <a class="el" href="group__fs.html#gad6b56bdbbe5838a6260ddc0926fa1891">FS_BLOCK_SIZE</a>) + FS_HEADER_TAG_OFFSET, <a class="el" href="group__fs__header.html#ga499f64a7727690bf0d5281e16539a95a">FS_HEADER_TAG_SIZE</a>, (uint8_t *)dest)</td></tr>
<tr class="separator:aa4fcc0eddec09b64ff926e5e82eeba73"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:aa0c29e72d0d1edfe21fc3973a1976d39"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="aa0c29e72d0d1edfe21fc3973a1976d39"></a>
#define&#160;</td><td class="memItemRight" valign="bottom"><b>FS_SET_HEADER_FID</b>(block, src)&#160;&#160;&#160;<a class="el" href="hal_8h.html#aebb1592b9bb339c20a2e28a08b3deebe">HAL_Mem_WriteBlock</a>(<a class="el" href="group__fs.html#ga484d3b027c362670c91431b360d8e41a">FS_START</a> + (block * <a class="el" href="group__fs.html#gad6b56bdbbe5838a6260ddc0926fa1891">FS_BLOCK_SIZE</a>) + FS_HEADER_FID_OFFSET, <a class="el" href="group__fs__header.html#ga9ebf8374931fc290233a3fd175a1593c">FS_HEADER_FID_SIZE</a>, (uint8_t *)src)</td></tr>
<tr class="separator:aa0c29e72d0d1edfe21fc3973a1976d39"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a2970671cdea480cf2cbff7e5c10aad09"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a2970671cdea480cf2cbff7e5c10aad09"></a>
#define&#160;</td><td class="memItemRight" valign="bottom"><b>FS_GET_HEADER_FID</b>(block, dest)&#160;&#160;&#160;<a class="el" href="hal_8h.html#a48d7225f3720aa598e5c9fc3354c88e8">HAL_Mem_ReadBlock</a>(<a class="el" href="group__fs.html#ga484d3b027c362670c91431b360d8e41a">FS_START</a> + (block * <a class="el" href="group__fs.html#gad6b56bdbbe5838a6260ddc0926fa1891">FS_BLOCK_SIZE</a>) + FS_HEADER_FID_OFFSET, <a class="el" href="group__fs__header.html#ga9ebf8374931fc290233a3fd175a1593c">FS_HEADER_FID_SIZE</a>, (uint8_t *)dest)</td></tr>
<tr class="separator:a2970671cdea480cf2cbff7e5c10aad09"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a29831de9727c74a8e6b1eb163e470ce6"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a29831de9727c74a8e6b1eb163e470ce6"></a>
#define&#160;</td><td class="memItemRight" valign="bottom"><b>FS_SET_HEADER_PARENT</b>(block, src)&#160;&#160;&#160;<a class="el" href="hal_8h.html#aebb1592b9bb339c20a2e28a08b3deebe">HAL_Mem_WriteBlock</a>(<a class="el" href="group__fs.html#ga484d3b027c362670c91431b360d8e41a">FS_START</a> + (block * <a class="el" href="group__fs.html#gad6b56bdbbe5838a6260ddc0926fa1891">FS_BLOCK_SIZE</a>) + FS_HEADER_PARENT_OFFSET, <a class="el" href="group__fs__header.html#gae31c4ce686bea764e72c6ba0f49ed672">FS_HEADER_PARENT_SIZE</a>, (uint8_t *)src)</td></tr>
<tr class="separator:a29831de9727c74a8e6b1eb163e470ce6"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a4a3be5c20aa3a31cf6a143424aa7576a"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a4a3be5c20aa3a31cf6a143424aa7576a"></a>
#define&#160;</td><td class="memItemRight" valign="bottom"><b>FS_GET_HEADER_PARENT</b>(block, dest)&#160;&#160;&#160;<a class="el" href="hal_8h.html#a48d7225f3720aa598e5c9fc3354c88e8">HAL_Mem_ReadBlock</a>(<a class="el" href="group__fs.html#ga484d3b027c362670c91431b360d8e41a">FS_START</a> + (block * <a class="el" href="group__fs.html#gad6b56bdbbe5838a6260ddc0926fa1891">FS_BLOCK_SIZE</a>) + FS_HEADER_PARENT_OFFSET, <a class="el" href="group__fs__header.html#gae31c4ce686bea764e72c6ba0f49ed672">FS_HEADER_PARENT_SIZE</a>, (uint8_t *)dest)</td></tr>
<tr class="separator:a4a3be5c20aa3a31cf6a143424aa7576a"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:afb989016acb3543d70e97de3d4359a3f"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="afb989016acb3543d70e97de3d4359a3f"></a>
#define&#160;</td><td class="memItemRight" valign="bottom"><b>FS_SET_HEADER_CHILD</b>(block, src)&#160;&#160;&#160;<a class="el" href="hal_8h.html#aebb1592b9bb339c20a2e28a08b3deebe">HAL_Mem_WriteBlock</a>(<a class="el" href="group__fs.html#ga484d3b027c362670c91431b360d8e41a">FS_START</a> + (block * <a class="el" href="group__fs.html#gad6b56bdbbe5838a6260ddc0926fa1891">FS_BLOCK_SIZE</a>) + FS_HEADER_CHILD_OFFSET, <a class="el" href="group__fs__header.html#gaa8acbe7b4b0c8c5e9213afa90b528142">FS_HEADER_CHILD_SIZE</a>, (uint8_t *)src)</td></tr>
<tr class="separator:afb989016acb3543d70e97de3d4359a3f"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a9b1e9b646550be90f746ec7a430ce5f5"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a9b1e9b646550be90f746ec7a430ce5f5"></a>
#define&#160;</td><td class="memItemRight" valign="bottom"><b>FS_GET_HEADER_CHILD</b>(block, dest)&#160;&#160;&#160;<a class="el" href="hal_8h.html#a48d7225f3720aa598e5c9fc3354c88e8">HAL_Mem_ReadBlock</a>(<a class="el" href="group__fs.html#ga484d3b027c362670c91431b360d8e41a">FS_START</a> + (block * <a class="el" href="group__fs.html#gad6b56bdbbe5838a6260ddc0926fa1891">FS_BLOCK_SIZE</a>) + FS_HEADER_CHILD_OFFSET, <a class="el" href="group__fs__header.html#gaa8acbe7b4b0c8c5e9213afa90b528142">FS_HEADER_CHILD_SIZE</a>, (uint8_t *)dest)</td></tr>
<tr class="separator:a9b1e9b646550be90f746ec7a430ce5f5"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a036be05dfcd8859f75b763751f52bab6"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a036be05dfcd8859f75b763751f52bab6"></a>
#define&#160;</td><td class="memItemRight" valign="bottom"><b>FS_SET_HEADER_SIBLING</b>(block, src)&#160;&#160;&#160;<a class="el" href="hal_8h.html#aebb1592b9bb339c20a2e28a08b3deebe">HAL_Mem_WriteBlock</a>(<a class="el" href="group__fs.html#ga484d3b027c362670c91431b360d8e41a">FS_START</a> + (block * <a class="el" href="group__fs.html#gad6b56bdbbe5838a6260ddc0926fa1891">FS_BLOCK_SIZE</a>) + FS_HEADER_SIBLING_OFFSET, <a class="el" href="group__fs__header.html#ga7e470e354b3fa15e3880ecdb8784c6a2">FS_HEADER_SIBLING_SIZE</a>, (uint8_t *)src)</td></tr>
<tr class="separator:a036be05dfcd8859f75b763751f52bab6"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a30bbdd9e56b56750c4c17a0eadb6ee03"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a30bbdd9e56b56750c4c17a0eadb6ee03"></a>
#define&#160;</td><td class="memItemRight" valign="bottom"><b>FS_GET_HEADER_SIBLING</b>(block, dest)&#160;&#160;&#160;<a class="el" href="hal_8h.html#a48d7225f3720aa598e5c9fc3354c88e8">HAL_Mem_ReadBlock</a>(<a class="el" href="group__fs.html#ga484d3b027c362670c91431b360d8e41a">FS_START</a> + (block * <a class="el" href="group__fs.html#gad6b56bdbbe5838a6260ddc0926fa1891">FS_BLOCK_SIZE</a>) + FS_HEADER_SIBLING_OFFSET, <a class="el" href="group__fs__header.html#ga7e470e354b3fa15e3880ecdb8784c6a2">FS_HEADER_SIBLING_SIZE</a>, (uint8_t *)dest)</td></tr>
<tr class="separator:a30bbdd9e56b56750c4c17a0eadb6ee03"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ab045da699b5aef601e92175cb3cdd567"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="ab045da699b5aef601e92175cb3cdd567"></a>
#define&#160;</td><td class="memItemRight" valign="bottom"><b>FS_SET_HEADER_BODY</b>(block, src)&#160;&#160;&#160;<a class="el" href="hal_8h.html#aebb1592b9bb339c20a2e28a08b3deebe">HAL_Mem_WriteBlock</a>(<a class="el" href="group__fs.html#ga484d3b027c362670c91431b360d8e41a">FS_START</a> + (block * <a class="el" href="group__fs.html#gad6b56bdbbe5838a6260ddc0926fa1891">FS_BLOCK_SIZE</a>) + FS_HEADER_BODY_OFFSET, <a class="el" href="group__fs__header.html#ga4aecac06373354147de5dfec4ba14ca9">FS_HEADER_BODY_SIZE</a>, (uint8_t *)src)</td></tr>
<tr class="separator:ab045da699b5aef601e92175cb3cdd567"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:af09bd89eeeb1553bbc2187c443243457"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="af09bd89eeeb1553bbc2187c443243457"></a>
#define&#160;</td><td class="memItemRight" valign="bottom"><b>FS_GET_HEADER_BODY</b>(block, dest)&#160;&#160;&#160;<a class="el" href="hal_8h.html#a48d7225f3720aa598e5c9fc3354c88e8">HAL_Mem_ReadBlock</a>(<a class="el" href="group__fs.html#ga484d3b027c362670c91431b360d8e41a">FS_START</a> + (block * <a class="el" href="group__fs.html#gad6b56bdbbe5838a6260ddc0926fa1891">FS_BLOCK_SIZE</a>) + FS_HEADER_BODY_OFFSET, <a class="el" href="group__fs__header.html#ga4aecac06373354147de5dfec4ba14ca9">FS_HEADER_BODY_SIZE</a>, (uint8_t *)dest)</td></tr>
<tr class="separator:af09bd89eeeb1553bbc2187c443243457"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a23769058ca1dc7b4767bc409a0223401"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a23769058ca1dc7b4767bc409a0223401"></a>
#define&#160;</td><td class="memItemRight" valign="bottom"><b>FS_SET_BODY_STRUCTURE</b>(block, src)&#160;&#160;&#160;<a class="el" href="hal_8h.html#aebb1592b9bb339c20a2e28a08b3deebe">HAL_Mem_WriteBlock</a>(<a class="el" href="group__fs.html#ga484d3b027c362670c91431b360d8e41a">FS_START</a> + (block * <a class="el" href="group__fs.html#gad6b56bdbbe5838a6260ddc0926fa1891">FS_BLOCK_SIZE</a>) + FS_BODY_STRUCTURE_OFFSET, FS_BODY_STRUCTURE_SIZE, (uint8_t *)src)</td></tr>
<tr class="separator:a23769058ca1dc7b4767bc409a0223401"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a2acd89ef94fd214b1db155be1145e3c5"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a2acd89ef94fd214b1db155be1145e3c5"></a>
#define&#160;</td><td class="memItemRight" valign="bottom"><b>FS_GET_BODY_STRUCTURE</b>(block, dest)&#160;&#160;&#160;<a class="el" href="hal_8h.html#a48d7225f3720aa598e5c9fc3354c88e8">HAL_Mem_ReadBlock</a>(<a class="el" href="group__fs.html#ga484d3b027c362670c91431b360d8e41a">FS_START</a> + (block * <a class="el" href="group__fs.html#gad6b56bdbbe5838a6260ddc0926fa1891">FS_BLOCK_SIZE</a>) + FS_BODY_STRUCTURE_OFFSET, FS_BODY_STRUCTURE_SIZE, (uint8_t *)dest)</td></tr>
<tr class="separator:a2acd89ef94fd214b1db155be1145e3c5"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ae26d2451321b3424873f80f1abc97ad2"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="ae26d2451321b3424873f80f1abc97ad2"></a>
#define&#160;</td><td class="memItemRight" valign="bottom"><b>FS_SET_BODY_TYPE</b>(block, src)&#160;&#160;&#160;<a class="el" href="hal_8h.html#aebb1592b9bb339c20a2e28a08b3deebe">HAL_Mem_WriteBlock</a>(<a class="el" href="group__fs.html#ga484d3b027c362670c91431b360d8e41a">FS_START</a> + (block * <a class="el" href="group__fs.html#gad6b56bdbbe5838a6260ddc0926fa1891">FS_BLOCK_SIZE</a>) + FS_BODY_TYPE_OFFSET, FS_BODY_TYPE_SIZE, (uint8_t *)src)</td></tr>
<tr class="separator:ae26d2451321b3424873f80f1abc97ad2"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ac2fa293f40152fe6a8faf230496df901"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="ac2fa293f40152fe6a8faf230496df901"></a>
#define&#160;</td><td class="memItemRight" valign="bottom"><b>FS_GET_BODY_TYPE</b>(block, dest)&#160;&#160;&#160;<a class="el" href="hal_8h.html#a48d7225f3720aa598e5c9fc3354c88e8">HAL_Mem_ReadBlock</a>(<a class="el" href="group__fs.html#ga484d3b027c362670c91431b360d8e41a">FS_START</a> + (block * <a class="el" href="group__fs.html#gad6b56bdbbe5838a6260ddc0926fa1891">FS_BLOCK_SIZE</a>) + FS_BODY_TYPE_OFFSET, FS_BODY_TYPE_SIZE, (uint8_t *)dest)</td></tr>
<tr class="separator:ac2fa293f40152fe6a8faf230496df901"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a1b0362823e82f3d763a1fb30f871ba04"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a1b0362823e82f3d763a1fb30f871ba04"></a>
#define&#160;</td><td class="memItemRight" valign="bottom"><b>FS_SET_BODY_ACREAD</b>(block, src)&#160;&#160;&#160;<a class="el" href="hal_8h.html#aebb1592b9bb339c20a2e28a08b3deebe">HAL_Mem_WriteBlock</a>(<a class="el" href="group__fs.html#ga484d3b027c362670c91431b360d8e41a">FS_START</a> + (block * <a class="el" href="group__fs.html#gad6b56bdbbe5838a6260ddc0926fa1891">FS_BLOCK_SIZE</a>) + FS_BODY_ACREAD_OFFSET, FS_BODY_ACREAD_SIZE, (uint8_t *)src)</td></tr>
<tr class="separator:a1b0362823e82f3d763a1fb30f871ba04"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a125130ffb5169684e07bdbaaea1fea1b"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a125130ffb5169684e07bdbaaea1fea1b"></a>
#define&#160;</td><td class="memItemRight" valign="bottom"><b>FS_GET_BODY_ACREAD</b>(block, dest)&#160;&#160;&#160;<a class="el" href="hal_8h.html#a48d7225f3720aa598e5c9fc3354c88e8">HAL_Mem_ReadBlock</a>(<a class="el" href="group__fs.html#ga484d3b027c362670c91431b360d8e41a">FS_START</a> + (block * <a class="el" href="group__fs.html#gad6b56bdbbe5838a6260ddc0926fa1891">FS_BLOCK_SIZE</a>) + FS_BODY_ACREAD_OFFSET, FS_BODY_ACREAD_SIZE, (uint8_t *)dest)</td></tr>
<tr class="separator:a125130ffb5169684e07bdbaaea1fea1b"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a8734c491180bc06c073a7b812d2d7a53"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a8734c491180bc06c073a7b812d2d7a53"></a>
#define&#160;</td><td class="memItemRight" valign="bottom"><b>FS_SET_BODY_ACUPDATE</b>(block, src)&#160;&#160;&#160;<a class="el" href="hal_8h.html#aebb1592b9bb339c20a2e28a08b3deebe">HAL_Mem_WriteBlock</a>(<a class="el" href="group__fs.html#ga484d3b027c362670c91431b360d8e41a">FS_START</a> + (block * <a class="el" href="group__fs.html#gad6b56bdbbe5838a6260ddc0926fa1891">FS_BLOCK_SIZE</a>) + FS_BODY_ACUPDATE_OFFSET, FS_BODY_ACUPDATE_SIZE, (uint8_t *)src)</td></tr>
<tr class="separator:a8734c491180bc06c073a7b812d2d7a53"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ad5d976c35e9bba8780bfcc5e5bece49a"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="ad5d976c35e9bba8780bfcc5e5bece49a"></a>
#define&#160;</td><td class="memItemRight" valign="bottom"><b>FS_GET_BODY_ACUPDATE</b>(block, dest)&#160;&#160;&#160;<a class="el" href="hal_8h.html#a48d7225f3720aa598e5c9fc3354c88e8">HAL_Mem_ReadBlock</a>(<a class="el" href="group__fs.html#ga484d3b027c362670c91431b360d8e41a">FS_START</a> + (block * <a class="el" href="group__fs.html#gad6b56bdbbe5838a6260ddc0926fa1891">FS_BLOCK_SIZE</a>) + FS_BODY_ACUPDATE_OFFSET, FS_BODY_ACUPDATE_SIZE, (uint8_t *)dest)</td></tr>
<tr class="separator:ad5d976c35e9bba8780bfcc5e5bece49a"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:aa5dc6de0a47696c80cbd1993e1574061"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="aa5dc6de0a47696c80cbd1993e1574061"></a>
#define&#160;</td><td class="memItemRight" valign="bottom"><b>FS_SET_BODY_SIZE</b>(block, src)&#160;&#160;&#160;<a class="el" href="hal_8h.html#aebb1592b9bb339c20a2e28a08b3deebe">HAL_Mem_WriteBlock</a>(<a class="el" href="group__fs.html#ga484d3b027c362670c91431b360d8e41a">FS_START</a> + (block * <a class="el" href="group__fs.html#gad6b56bdbbe5838a6260ddc0926fa1891">FS_BLOCK_SIZE</a>) + FS_BODY_SIZE_OFFSET, FS_BODY_SIZE_SIZE, (uint8_t *)src)</td></tr>
<tr class="separator:aa5dc6de0a47696c80cbd1993e1574061"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a706fa2778c32f0bc575f03ffd4f22cb5"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a706fa2778c32f0bc575f03ffd4f22cb5"></a>
#define&#160;</td><td class="memItemRight" valign="bottom"><b>FS_GET_BODY_SIZE</b>(block, dest)&#160;&#160;&#160;<a class="el" href="hal_8h.html#a48d7225f3720aa598e5c9fc3354c88e8">HAL_Mem_ReadBlock</a>(<a class="el" href="group__fs.html#ga484d3b027c362670c91431b360d8e41a">FS_START</a> + (block * <a class="el" href="group__fs.html#gad6b56bdbbe5838a6260ddc0926fa1891">FS_BLOCK_SIZE</a>) + FS_BODY_SIZE_OFFSET, FS_BODY_SIZE_SIZE, (uint8_t *)dest)</td></tr>
<tr class="separator:a706fa2778c32f0bc575f03ffd4f22cb5"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a2af03653520b4c4459cdb7023132ac8a"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a2af03653520b4c4459cdb7023132ac8a"></a>
#define&#160;</td><td class="memItemRight" valign="bottom"><b>FS_SET_BODY_BODY</b>(block, length, src)&#160;&#160;&#160;<a class="el" href="hal_8h.html#aebb1592b9bb339c20a2e28a08b3deebe">HAL_Mem_WriteBlock</a>(<a class="el" href="group__fs.html#ga484d3b027c362670c91431b360d8e41a">FS_START</a> + (block * <a class="el" href="group__fs.html#gad6b56bdbbe5838a6260ddc0926fa1891">FS_BLOCK_SIZE</a>) + FS_BODY_BODY_OFFSET + offset, length, (uint8_t *)src)</td></tr>
<tr class="separator:a2af03653520b4c4459cdb7023132ac8a"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:afb8761d3d6ce0925dcb7e24a53af807c"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="afb8761d3d6ce0925dcb7e24a53af807c"></a>
#define&#160;</td><td class="memItemRight" valign="bottom"><b>FS_GET_BODY_BODY</b>(block, length, dest)&#160;&#160;&#160;<a class="el" href="hal_8h.html#a48d7225f3720aa598e5c9fc3354c88e8">HAL_Mem_ReadBlock</a>(<a class="el" href="group__fs.html#ga484d3b027c362670c91431b360d8e41a">FS_START</a> + (block * <a class="el" href="group__fs.html#gad6b56bdbbe5838a6260ddc0926fa1891">FS_BLOCK_SIZE</a>) + FS_BODY_BODY_OFFSET + offset, length, (uint8_t *)dest)</td></tr>
<tr class="separator:afb8761d3d6ce0925dcb7e24a53af807c"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a0d242b83a29e571afa07af2acb9d7412"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a0d242b83a29e571afa07af2acb9d7412"></a>
#define&#160;</td><td class="memItemRight" valign="bottom"><b>CEIL</b>(A, B)&#160;&#160;&#160;((A%B)==0 ? (A/B) : (A/B + 1))</td></tr>
<tr class="separator:a0d242b83a29e571afa07af2acb9d7412"><td class="memSeparator" colspan="2">&#160;</td></tr>
</table><table class="memberdecls">
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="func-members"></a>
Functions</h2></td></tr>
<tr class="memitem:a24d8e136cb5d9983ac79760f9c942943"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a24d8e136cb5d9983ac79760f9c942943"></a>
int&#160;</td><td class="memItemRight" valign="bottom"><b>FS_Init</b> ()</td></tr>
<tr class="separator:a24d8e136cb5d9983ac79760f9c942943"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:gab1bf818b552bb3c24080e3249112e026"><td class="memItemLeft" align="right" valign="top">int&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__fs.html#gab1bf818b552bb3c24080e3249112e026">FSSelectMF</a> ()</td></tr>
<tr class="memdesc:gab1bf818b552bb3c24080e3249112e026"><td class="mdescLeft">&#160;</td><td class="mdescRight">select MFFile system function to select MF  <a href="group__fs.html#gab1bf818b552bb3c24080e3249112e026">More...</a><br/></td></tr>
<tr class="separator:gab1bf818b552bb3c24080e3249112e026"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga9f8915bf60a20928be8f7ab9a5750309"><td class="memItemLeft" align="right" valign="top">int&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__fs.html#ga9f8915bf60a20928be8f7ab9a5750309">FSAccessBinary</a> (int op, int offset, int length, uint8_t *databyte)</td></tr>
<tr class="memdesc:ga9f8915bf60a20928be8f7ab9a5750309"><td class="mdescLeft">&#160;</td><td class="mdescRight">access a transparent fileFile system function to access (read &amp; update) a transparent file  <a href="group__fs.html#ga9f8915bf60a20928be8f7ab9a5750309">More...</a><br/></td></tr>
<tr class="separator:ga9f8915bf60a20928be8f7ab9a5750309"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a66ac99b817df3644636eb643894e2e67"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a66ac99b817df3644636eb643894e2e67"></a>
int&#160;</td><td class="memItemRight" valign="bottom"><b>FSFormat</b> ()</td></tr>
<tr class="separator:a66ac99b817df3644636eb643894e2e67"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a754d06fefa87ec6feb1d770bcb82645d"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a754d06fefa87ec6feb1d770bcb82645d"></a>
int&#160;</td><td class="memItemRight" valign="bottom"><b>FSCreateHeader</b> (uint8_t tag, uint16_t fid, uint16_t *addr)</td></tr>
<tr class="separator:a754d06fefa87ec6feb1d770bcb82645d"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:adbeb87fee3f930e577d835905a85b863"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="adbeb87fee3f930e577d835905a85b863"></a>
int&#160;</td><td class="memItemRight" valign="bottom"><b>FSCreateBodyEF</b> (struct <a class="el" href="structEF__st.html">EF_st</a> *desc, uint16_t *addr)</td></tr>
<tr class="separator:adbeb87fee3f930e577d835905a85b863"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:aa86a040776d3ed2ca84ff20a019a8fd8"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="aa86a040776d3ed2ca84ff20a019a8fd8"></a>
uint16_t&#160;</td><td class="memItemRight" valign="bottom"><b>FSSearchFID</b> (uint16_t fid)</td></tr>
<tr class="separator:aa86a040776d3ed2ca84ff20a019a8fd8"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a8b8168a91a357265b45a7573230c8ddc"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a8b8168a91a357265b45a7573230c8ddc"></a>
uint16_t&#160;</td><td class="memItemRight" valign="bottom"><b>FS_SelectFID</b> (uint16_t fid)</td></tr>
<tr class="separator:a8b8168a91a357265b45a7573230c8ddc"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga57bbc0e2b610758d6710826166345004"><td class="memItemLeft" align="right" valign="top">int&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__fs.html#ga57bbc0e2b610758d6710826166345004">FSCreateFile</a> (int tag, void *desc)</td></tr>
<tr class="memdesc:ga57bbc0e2b610758d6710826166345004"><td class="mdescLeft">&#160;</td><td class="mdescRight">create a new fileFile system function to create a file  <a href="group__fs.html#ga57bbc0e2b610758d6710826166345004">More...</a><br/></td></tr>
<tr class="separator:ga57bbc0e2b610758d6710826166345004"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:gab24d6b7331b45fa5ad94f87244f4ce29"><td class="memItemLeft" align="right" valign="top">int&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__fs.html#gab24d6b7331b45fa5ad94f87244f4ce29">FSDeleteFile</a> (uint16_t fid)</td></tr>
<tr class="memdesc:gab24d6b7331b45fa5ad94f87244f4ce29"><td class="mdescLeft">&#160;</td><td class="mdescRight">delete a fileFile system function to delete a file  <a href="group__fs.html#gab24d6b7331b45fa5ad94f87244f4ce29">More...</a><br/></td></tr>
<tr class="separator:gab24d6b7331b45fa5ad94f87244f4ce29"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a0b4173bd166c1237a969ceab5c7be432"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a0b4173bd166c1237a969ceab5c7be432"></a>
int&#160;</td><td class="memItemRight" valign="bottom"><b>FSAlloc</b> (uint16_t size, uint16_t startBlock, uint16_t endBlock, uint16_t *address)</td></tr>
<tr class="separator:a0b4173bd166c1237a969ceab5c7be432"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ad96914af4dcefc5b3d642067f2aa7ad4"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="ad96914af4dcefc5b3d642067f2aa7ad4"></a>
int&#160;</td><td class="memItemRight" valign="bottom"><b>FSFree</b> (uint16_t address, uint16_t length)</td></tr>
<tr class="separator:ad96914af4dcefc5b3d642067f2aa7ad4"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a0d5a0eb299eb4c75a368b601937f9f8c"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a0d5a0eb299eb4c75a368b601937f9f8c"></a>
uint8_t&#160;</td><td class="memItemRight" valign="bottom"><b>FS_GetAC</b> (int op)</td></tr>
<tr class="separator:a0d5a0eb299eb4c75a368b601937f9f8c"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a4b73fbcb6e23839b4937e797ed315f58"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a4b73fbcb6e23839b4937e797ed315f58"></a>
uint8_t&#160;</td><td class="memItemRight" valign="bottom"><b>FS_CheckAC</b> (int op)</td></tr>
<tr class="separator:a4b73fbcb6e23839b4937e797ed315f58"><td class="memSeparator" colspan="2">&#160;</td></tr>
</table>
<a name="details" id="details"></a><h2 class="groupheader">Detailed Description</h2>
<div class="textblock"><p>Implementation for file system module. </p>
<dl class="section author"><dt>Author</dt><dd>Ricky Hariady (<a href="#" onclick="location.href='mai'+'lto:'+'ric'+'ky'+'.ha'+'ri'+'ady'+'@e'+'nte'+'r.'+'web'+'.i'+'d'; return false;">ricky<span style="display: none;">.nosp@m.</span>.har<span style="display: none;">.nosp@m.</span>iady@<span style="display: none;">.nosp@m.</span>ente<span style="display: none;">.nosp@m.</span>r.web<span style="display: none;">.nosp@m.</span>.id</a>)</dd></dl>
<dl class="section date"><dt>Date</dt><dd>9/7/2013 </dd></dl>
</div><h2 class="groupheader">Macro Definition Documentation</h2>
<a class="anchor" id="ae3f12a56a7d9f5bb0adcb1ecce955871"></a>
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">#define FS_BODY_HEADER_SIZE</td>
        </tr>
      </table>
</div><div class="memdoc">
<b>Value:</b><div class="fragment"><div class="line">FS_BODY_STRUCTURE_SIZE + \</div>
<div class="line">                    FS_BODY_TYPE_SIZE + \</div>
<div class="line">                    FS_BODY_ACREAD_SIZE + \</div>
<div class="line">                    FS_BODY_ACUPDATE_SIZE + \</div>
<div class="line">                    FS_BODY_SIZE_SIZE</div>
</div><!-- fragment -->
</div>
</div>
</div><!-- contents -->
<!-- start footer part -->
<hr class="footer"/><address class="footer"><small>
Generated on Wed Jun 4 2014 18:13:31 for PintarOS by &#160;<a href="http://www.doxygen.org/index.html">
<img class="footer" src="doxygen.png" alt="doxygen"/>
</a> 1.8.5
</small></address>
</body>
</html>
